home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / PROGSCAL / TBUTIL2.LZH / READFAT.PAS < prev    next >
Pascal/Delphi Source File  |  1984-07-13  |  1KB  |  60 lines

  1. PROGRAM readfat;
  2.  
  3. VAR
  4.  
  5.    fat_fill      :   ARRAY[0..4095] OF BYTE;
  6.    drive         :   BYTE;
  7.    cluster       :   INTEGER;
  8.    fat_cluster   :   INTEGER;
  9.    fat_offset    :   INTEGER;
  10.    free_clusters :   INTEGER;
  11.    total_clusters:   INTEGER;
  12.    cl_size       :   INTEGER;
  13.    year,day      :   INTEGER;
  14.    hour,min,
  15.    month,date    :  BYTE;
  16.  
  17.  
  18. {$i  biosread.inc }
  19. {$i  getfree.inc}
  20. {$i  getdate.inc}
  21. {$i  dumphex.inc}
  22.  
  23.  
  24.  
  25. BEGIN
  26.  
  27.    getdate  ( year,month,date,hour,min );
  28.    WRITELN( year:5,month:4,date:4,'  ',hour:3,min:3);
  29.    get_free_space ( free_clusters,total_clusters,cl_size,3);
  30.    WRITELN (' free space =',free_clusters:6,total_clusters:6,cl_size:6);
  31.    drive := $80;
  32.    biosread(fat_fill,drive,0,0,3,8);
  33.  
  34.     cluster := 3;
  35.  
  36.    WHILE cluster <> 2 DO
  37.    BEGIN
  38.    WRITE('Enter cluster: ');
  39.    READLN(cluster);
  40.  
  41.    fat_offset := (cluster*3)  DIV 2;
  42.  
  43.    dumphex(fat_fill[fat_offset]);
  44.    dumphex(fat_fill[fat_offset+1]);
  45.  
  46.    IF cluster MOD 2 = 0 THEN
  47.  
  48.       fat_cluster := fat_fill[fat_offset] +
  49.                    ( (fat_fill[fat_offset+1] MOD 16 ) * 256)
  50.  
  51.    ELSE
  52.       fat_cluster := (fat_fill[fat_offset] SHR 4 ) +
  53.                      (fat_fill[fat_offset+1] * 16);
  54.  
  55.    dumphex(fat_cluster);
  56.    WRITELN( 'Next cluster is : ',fat_cluster);
  57.    END;
  58.  
  59. END.
  60.